package com.tedu.day02.test;

/**
 *                普通类       抽象类         接口
 *                     【关系】         【特点】
 *     类与类            继承           只能单继承、可多层继承
 *     类与抽象类         继承           可以单继承，不可以多继承
 *     抽象类与抽象类      继承           只能单继承、可多层继承
 *     类与接口           实现           可以单继承，也可以多实现，并且继承同时实现多个接口
 *     接口与接口         继承            可以单继承，可以多继承
 */
       /*作业1：抽象类与接口区别和关系？简答*/
/**      作业1：抽象类与接口区别和关系？简答
 * 区别：①关键字  抽象类：abstract定义，extends继承
 *              接口：interface定义，implements实现
 *      ②组成结构    抽象类：普通类+抽象方法      接口：抽象方法+全局常量
 *      ③抽象类可以包含属性和方法，接口不包含属性只能声明方法
 *      ④ 抽象类：只允许单继承                     ⑤构造方法   抽象类：可以有
 *         接口：可以实现多个接口                                接口：无
 *      ⑥成员变量   抽象类：可以变量、常量
 *                 接口：只有静态常量
 *     ⑦静态代码块   抽象类：有    接口：无
 * 关系：①接口是特殊的抽象类
 *     ②两个都不能被直接创建对象
 *     ③一个子类可以同时继承抽象类并实现接口
 *     ④都包含抽象方法
 */

//                 5.接口与接口:继承  ——可以单继承，可以多继承
interface Loo{} interface Foo{}
interface Voo extends Loo,Foo{}
//                   4.类与接口：实现  以单继承，也可以多实现，并且继承同时实现多个接口
/*interface Loo{} interface Foo{}
class Joo{}
class Voo extends Joo implements Loo,Foo{}*/
//                   3.抽象类与抽象类：继承 ——只能单继承、可多层继承
/*abstract class Loo{} abstract Foo{}
abstract class Voo extends Loo{}
abstract class Uoo extends Voo{}*/
//                   2.类与抽象类：继承       可以单继承，不可以多继承
    /*abstract class Uoo{}  abstract class Voo{}
class Loo extends Uoo,Voo{}  */
//                   1.类与类继承关系,可以多层继承
 /*class Uoo{}
class Loo extends Uoo{}
class Voo extends Loo{}*/
public class 关系 {
}
